package com.imooc.bigdata.chapter08_my.utils

object IPUtils {


  /**
    * 将字符串转成十进制
    * @param ip
    */
  def ip2Long(ip:String) = {
    val splits: Array[String] = ip.split("[.]")
    var ipNum = 0l

    /*


    A = 0011 1100

    B = 0000 1101

    -------位运算----------

    A&B = 0000 1100

    A|B = 0011 1101

    A^B = 0011 0001

    ~A  = 1100 0011

    <<	左移动运算符（移2位） 	a << 2 输出结果 240 ，二进制解释： 1111 0000

    >>	右移动运算符（移2位） 	a >> 2 输出结果 15 ，二进制解释： 0000 1111
     */


    for(i<-0 until(splits.length)) {
      ipNum = splits(i).toLong | ipNum << 8L
    }

    ipNum
  }

  def main(args: Array[String]): Unit = {
    println(ip2Long("182.91.190.221"))
  }
}
